#include <linux/sched.h>
#include <linux/thread_info.h>
#include <linux/nsproxy.h>
#include <linux/list.h>

#ifdef CONFIG_PID
#include "_init_/init_pid.c"
#endif

static struct nsproxy init_nsproxy = {
#ifdef CONFIG_PID
    .pid_ns_for_children = &init_pid_ns,
#endif
};

long init_stack[THREAD_SIZE / sizeof(long)];

struct task_struct init_task = {
    .__state = TASK_RUNNING,
    .stack = init_stack,
    .prio = DEFAULT_PRIO,
    .normal_prio = DEFAULT_PRIO,
    .static_prio = DEFAULT_PRIO,
    .nsproxy = &init_nsproxy,
#ifdef CONFIG_PID
    .thread_pid = &init_struct_pid,
#endif
    .tasks = LIST_HEAD_INIT(init_task.tasks),
#ifdef CONFIG_SMP
    .cpus_ptr = &init_task.cpus_mask,
    .cpus_mask = CPU_MASK_ALL,
    .nr_cpus_allowed = NR_CPUS,
#endif
};
